﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Mantenimiento.Negocio
{
    [Serializable]
    public class IncidenciaRevision
    {
        #region CAMPOS
        private int _id;
        private DateTime _fecha;
        private int _kilometros;
        private int _horas;
        private string _observaciones;
        private string _matricula;
        private int _nRevision;
        private bool _bincidencia;
        private string _tipo;
        #endregion

        #region PROPIEDADES
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        public DateTime Fecha
        {
            get { return _fecha; }
            set { _fecha = value; }
        }
        public int Kilometros
        {
            get { return _kilometros; }
            set { _kilometros = value; }
        }
        public int Horas
        {
            get { return _horas; }
            set { _horas = value; }
        }
        public string Observaciones
        {
            get { return _observaciones; }
            set { _observaciones = value; }
        }
        public string Matricula
        {
            get { return _matricula; }
            set { _matricula = value; }
        }
        public int NRevision
        {
            get { return _nRevision; }
            set { _nRevision = value; }
        }
        public bool Bincidencia
        {
            get { return _bincidencia; }
            set { _bincidencia = value; }
        }
        public string Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }
        #endregion

        #region CONSTRUCTORES
        public IncidenciaRevision()
        {
            _id = int.MinValue;
        }
        public IncidenciaRevision(Incidencia i)
        {
            _id = i.Id;
            _fecha = i.Fecha;
            _kilometros = i.Kilometros; 
            _horas = i.Horas; 
            _observaciones = i.Observaciones;
            _matricula = i.Matricula;
            _nRevision = int.MinValue;
            _bincidencia = true;
            _tipo = "I";
        }
        public IncidenciaRevision(Revision r)
        {
            _id = r.Id;
            _fecha = r.Fecha;
            _kilometros = r.Kilometros;
            _horas = r.Horas;
            _observaciones = r.Observaciones;
            _matricula = r.Matricula;
            _nRevision = r.NRevision;
            _bincidencia = false;
            _tipo = "R";
        }
        #endregion

        #region Metodos estaticos de clase
        public static List<IncidenciaRevision> obtenerxmatricula(string pMatricula)
        {
            List<IncidenciaRevision> lista = new List<IncidenciaRevision>();
            DataTable dt = CAD.Revision.buscarxmatricula(pMatricula);
            foreach (DataRow dr in dt.Rows)
            {
                try
                {
                    lista.Add(new IncidenciaRevision(new Revision(dr)));
                }
                catch (Exception ex)
                {
                }
            }
            DataTable dt2 = CAD.Incidencia.buscarxmatricula(pMatricula);
            foreach (DataRow dr in dt2.Rows)
            {
                try
                {
                    lista.Add(new IncidenciaRevision(new Incidencia(dr)));
                }
                catch (Exception ex)
                {
                }
            }
            return lista;
        }
        #endregion
    }
}
